import 'package:flutter/material.dart';

import 'package:get/get.dart';

import '../../common/index.dart';

import 'communication_controller.dart';

/// 患者沟通页面
/// 医生与患者的沟通交流界面
class CommunicationPage extends BaseGetXlistV<CommunicationController> {
  CommunicationPage({super.key});
  @override
  CommunicationController get controller => Get.put(CommunicationController());

  @override
  Widget createListView(BuildContext context) {
    Widget body = Container();
    return body;
  }
}



// class CommunicationPage extends BaseGetXV<CommunicationController> {
//   CommunicationPage({super.key});

//   @override
//   CommunicationController get controller =>
//       Get.put(CommunicationController(), tag: 'CommunicationController');

//   @override
//   Widget createBody({
//     required BuildContext context,
//     BoxConstraints? constraints,
//   }) {
//     return Column(
//       children: [
//         _buildSearchBar(context),
//         _buildStatusTabs(context),
//         Expanded(
//           child: SmartRefresher(
//             controller: controller.refreshController,
//             enablePullDown: true,
//             enablePullUp: true,
//             onRefresh: controller.onRefresh,
//             onLoading: controller.onLoadMore,
//             child: Obx(() =>
//                 controller.isLoading.value && controller.conversations.isEmpty
//                     ? _buildLoadingWidget()
//                     : controller.conversations.isEmpty
//                         ? _buildEmptyWidget(context)
//                         : _buildConversationList(context)),
//           ),
//         ),
//       ],
//     );
//   }

//   @override
//   createScaffolWidget({
//     required BuildContext context,
//     BoxConstraints? constraints,
//   }) {
//     return Scaffold(
//       backgroundColor: context.theme.scaffoldBackgroundColor,
//       appBar: _buildAppBar(context),
//       body: createScallBody(
//         context: context,
//         constraints: constraints,
//       ),
//       floatingActionButton: _buildFloatingActionButton(context),
//     );
//   }

//   /// 构建应用栏
//   PreferredSizeWidget _buildAppBar(BuildContext context) {
//     return AppBar(
//       title: Text(
//         StringConfig.communication,
//         style: TextStyle(
//           fontSize: 18.sp,
//           fontWeight: FontWeight.w600,
//           color: context.theme.appBarTheme.titleTextStyle?.color,
//         ),
//       ),
//       backgroundColor: context.theme.appBarTheme.backgroundColor,
//       elevation: 0,
//       actions: [
//         IconButton(
//           onPressed: controller.onNotificationTap,
//           icon: Stack(
//             children: [
//               Icon(
//                 Icons.notifications_outlined,
//                 size: 24.w,
//                 color: context.theme.appBarTheme.iconTheme?.color,
//               ),
//               Obx(() => controller.unreadNotificationCount.value > 0
//                   ? Positioned(
//                       right: 0,
//                       top: 0,
//                       child: Container(
//                         padding: EdgeInsets.all(2.w),
//                         decoration: BoxDecoration(
//                           color: Colors.red,
//                           borderRadius: BorderRadius.circular(8.w),
//                         ),
//                         constraints: BoxConstraints(
//                           minWidth: 16.w,
//                           minHeight: 16.w,
//                         ),
//                         child: Text(
//                           '${controller.unreadNotificationCount.value}',
//                           style: TextStyle(
//                             color: Colors.white,
//                             fontSize: 10.sp,
//                             fontWeight: FontWeight.bold,
//                           ),
//                           textAlign: TextAlign.center,
//                         ),
//                       ),
//                     )
//                   : const SizedBox.shrink()),
//             ],
//           ),
//         ),
//         IconButton(
//           onPressed: controller.onGroupChatTap,
//           icon: Icon(
//             Icons.group_outlined,
//             size: 24.w,
//             color: context.theme.appBarTheme.iconTheme?.color,
//           ),
//         ),
//         SizedBox(width: 8.w),
//       ],
//     );
//   }

//   /// 构建搜索栏
//   Widget _buildSearchBar(BuildContext context) {
//     return Container(
//       margin: EdgeInsets.all(16.w),
//       child: TextField(
//         controller: controller.searchController,
//         decoration: InputDecoration(
//           hintText: '搜索患者姓名或手机号',
//           hintStyle: TextStyle(
//             fontSize: 14.sp,
//             color: context.theme.hintColor,
//           ),
//           prefixIcon: Icon(
//             Icons.search,
//             size: 20.w,
//             color: context.theme.hintColor,
//           ),
//           suffixIcon: Obx(() => controller.searchController.text.isNotEmpty
//               ? IconButton(
//                   onPressed: controller.clearSearch,
//                   icon: Icon(
//                     Icons.clear,
//                     size: 20.w,
//                     color: context.theme.hintColor,
//                   ),
//                 )
//               : const SizedBox.shrink()),
//           filled: true,
//           fillColor: context.theme.cardColor,
//           border: OutlineInputBorder(
//             borderRadius: BorderRadius.circular(12.r),
//             borderSide: BorderSide.none,
//           ),
//           contentPadding: EdgeInsets.symmetric(
//             horizontal: 16.w,
//             vertical: 12.h,
//           ),
//         ),
//         onSubmitted: controller.onSearch,
//       ),
//     );
//   }

//   /// 构建状态标签
//   Widget _buildStatusTabs(BuildContext context) {
//     return Container(
//       height: 40.h,
//       margin: EdgeInsets.symmetric(horizontal: 16.w),
//       child: Obx(() => ListView.separated(
//             scrollDirection: Axis.horizontal,
//             itemCount: controller.statusList.length,
//             separatorBuilder: (context, index) => SizedBox(width: 12.w),
//             itemBuilder: (context, index) {
//               final status = controller.statusList[index];
//               final isSelected = controller.selectedStatus.value == status;
//               return GestureDetector(
//                 onTap: () => controller.onStatusChanged(status),
//                 child: Container(
//                   padding: EdgeInsets.symmetric(
//                     horizontal: 16.w,
//                     vertical: 8.h,
//                   ),
//                   decoration: BoxDecoration(
//                     color: isSelected
//                         ? context.theme.primaryColor
//                         : context.theme.cardColor,
//                     borderRadius: BorderRadius.circular(20.r),
//                     border: Border.all(
//                       color: isSelected
//                           ? context.theme.primaryColor
//                           : context.theme.dividerColor,
//                       width: 1,
//                     ),
//                   ),
//                   child: Row(
//                     mainAxisSize: MainAxisSize.min,
//                     children: [
//                       Text(
//                         status,
//                         style: TextStyle(
//                           fontSize: 14.sp,
//                           color: isSelected
//                               ? Colors.white
//                               : context.theme.textTheme.bodyMedium?.color,
//                           fontWeight:
//                               isSelected ? FontWeight.w500 : FontWeight.normal,
//                         ),
//                       ),
//                       if (controller.getUnreadCount(status) > 0) ...[
//                         SizedBox(width: 4.w),
//                         Container(
//                           padding: EdgeInsets.all(2.w),
//                           decoration: BoxDecoration(
//                             color: isSelected ? Colors.white : Colors.red,
//                             borderRadius: BorderRadius.circular(8.w),
//                           ),
//                           constraints: BoxConstraints(
//                             minWidth: 16.w,
//                             minHeight: 16.w,
//                           ),
//                           child: Text(
//                             '${controller.getUnreadCount(status)}',
//                             style: TextStyle(
//                               color: isSelected
//                                   ? context.theme.primaryColor
//                                   : Colors.white,
//                               fontSize: 10.sp,
//                               fontWeight: FontWeight.bold,
//                             ),
//                             textAlign: TextAlign.center,
//                           ),
//                         ),
//                       ],
//                     ],
//                   ),
//                 ),
//               );
//             },
//           )),
//     );
//   }

//   /// 构建对话列表
//   Widget _buildConversationList(BuildContext context) {
//     return ListView.separated(
//       padding: EdgeInsets.all(16.w),
//       itemCount: controller.conversations.length,
//       separatorBuilder: (context, index) => SizedBox(height: 12.h),
//       itemBuilder: (context, index) {
//         final conversation = controller.conversations[index];
//         return _buildConversationCard(context, conversation);
//       },
//     );
//   }

//   /// 构建对话卡片
//   Widget _buildConversationCard(BuildContext context, dynamic conversation) {
//     return GestureDetector(
//       onTap: () => controller.onConversationTap(conversation),
//       child: Container(
//         padding: EdgeInsets.all(16.w),
//         decoration: BoxDecoration(
//           color: context.theme.cardColor,
//           borderRadius: BorderRadius.circular(12.r),
//           boxShadow: [
//             BoxShadow(
//               color: Colors.black.withOpacity(0.05),
//               blurRadius: 4.r,
//               offset: Offset(0, 2.h),
//             ),
//           ],
//         ),
//         child: Row(
//           children: [
//             // 患者头像
//             Stack(
//               children: [
//                 ClipRRect(
//                   borderRadius: BorderRadius.circular(24.w),
//                   child: ExtendedImage.network(
//                     conversation.patientAvatar ?? globalConfig.defaultAvatarUrl,
//                     width: 48.w,
//                     height: 48.w,
//                     fit: BoxFit.cover,
//                     cache: true,
//                     loadStateChanged: (state) {
//                       if (state.extendedImageLoadState == LoadState.failed) {
//                         return Container(
//                           width: 48.w,
//                           height: 48.w,
//                           decoration: BoxDecoration(
//                             color: context.theme.cardColor,
//                             borderRadius: BorderRadius.circular(24.w),
//                           ),
//                           child: Icon(
//                             Icons.person,
//                             size: 24.w,
//                             color: context.theme.hintColor,
//                           ),
//                         );
//                       }
//                       return null;
//                     },
//                   ),
//                 ),
//                 // 在线状态指示器
//                 if (conversation.isOnline == true)
//                   Positioned(
//                     right: 0,
//                     bottom: 0,
//                     child: Container(
//                       width: 12.w,
//                       height: 12.w,
//                       decoration: BoxDecoration(
//                         color: Colors.green,
//                         borderRadius: BorderRadius.circular(6.w),
//                         border: Border.all(
//                           color: context.theme.cardColor,
//                           width: 2,
//                         ),
//                       ),
//                     ),
//                   ),
//               ],
//             ),
//             SizedBox(width: 12.w),
//             // 对话信息
//             Expanded(
//               child: Column(
//                 crossAxisAlignment: CrossAxisAlignment.start,
//                 children: [
//                   Row(
//                     children: [
//                       Expanded(
//                         child: Text(
//                           conversation.patientName ?? '',
//                           style: TextStyle(
//                             fontSize: 16.sp,
//                             fontWeight: FontWeight.w600,
//                             color: context.theme.textTheme.titleMedium?.color,
//                           ),
//                           maxLines: 1,
//                           overflow: TextOverflow.ellipsis,
//                         ),
//                       ),
//                       Text(
//                         controller.formatTime(conversation.lastMessageTime),
//                         style: TextStyle(
//                           fontSize: 12.sp,
//                           color: context.theme.textTheme.bodySmall?.color,
//                         ),
//                       ),
//                     ],
//                   ),
//                   SizedBox(height: 4.h),
//                   Row(
//                     children: [
//                       // 消息类型图标
//                       if (conversation.lastMessageType != null)
//                         Icon(
//                           controller
//                               .getMessageTypeIcon(conversation.lastMessageType),
//                           size: 14.w,
//                           color: context.theme.textTheme.bodyMedium?.color,
//                         ),
//                       if (conversation.lastMessageType != null)
//                         SizedBox(width: 4.w),
//                       Expanded(
//                         child: Text(
//                           conversation.lastMessage ?? '',
//                           style: TextStyle(
//                             fontSize: 14.sp,
//                             color: context.theme.textTheme.bodyMedium?.color,
//                           ),
//                           maxLines: 1,
//                           overflow: TextOverflow.ellipsis,
//                         ),
//                       ),
//                       // 未读消息数量
//                       if (conversation.unreadCount != null &&
//                           conversation.unreadCount! > 0)
//                         Container(
//                           margin: EdgeInsets.only(left: 8.w),
//                           padding: EdgeInsets.symmetric(
//                             horizontal: 6.w,
//                             vertical: 2.h,
//                           ),
//                           decoration: BoxDecoration(
//                             color: Colors.red,
//                             borderRadius: BorderRadius.circular(10.r),
//                           ),
//                           child: Text(
//                             conversation.unreadCount! > 99
//                                 ? '99+'
//                                 : '${conversation.unreadCount}',
//                             style: TextStyle(
//                               color: Colors.white,
//                               fontSize: 10.sp,
//                               fontWeight: FontWeight.bold,
//                             ),
//                           ),
//                         ),
//                     ],
//                   ),
//                   SizedBox(height: 8.h),
//                   // 患者信息
//                   Row(
//                     children: [
//                       Icon(
//                         conversation.patientGender == '男'
//                             ? Icons.male
//                             : Icons.female,
//                         size: 14.w,
//                         color: conversation.patientGender == '男'
//                             ? Colors.blue
//                             : Colors.pink,
//                       ),
//                       SizedBox(width: 4.w),
//                       Text(
//                         '${conversation.patientAge ?? 0}岁',
//                         style: TextStyle(
//                           fontSize: 12.sp,
//                           color: context.theme.textTheme.bodySmall?.color,
//                         ),
//                       ),
//                       SizedBox(width: 12.w),
//                       Icon(
//                         Icons.phone,
//                         size: 14.w,
//                         color: context.theme.textTheme.bodySmall?.color,
//                       ),
//                       SizedBox(width: 4.w),
//                       Text(
//                         globalConfig
//                             .formatPhoneNumber(conversation.patientPhone ?? ''),
//                         style: TextStyle(
//                           fontSize: 12.sp,
//                           color: context.theme.textTheme.bodySmall?.color,
//                         ),
//                       ),
//                     ],
//                   ),
//                 ],
//               ),
//             ),
//             SizedBox(width: 8.w),
//             // 操作按钮
//             Column(
//               children: [
//                 IconButton(
//                   onPressed: () => controller.onCallTap(conversation),
//                   icon: Icon(
//                     Icons.phone,
//                     size: 20.w,
//                     color: Colors.green,
//                   ),
//                 ),
//                 IconButton(
//                   onPressed: () => controller.onVideoCallTap(conversation),
//                   icon: Icon(
//                     Icons.videocam,
//                     size: 20.w,
//                     color: Colors.blue,
//                   ),
//                 ),
//               ],
//             ),
//           ],
//         ),
//       ),
//     );
//   }

//   /// 构建加载中组件
//   Widget _buildLoadingWidget() {
//     return const Center(
//       child: CircularProgressIndicator(),
//     );
//   }

//   /// 构建空状态组件
//   Widget _buildEmptyWidget(BuildContext context) {
//     return Center(
//       child: Column(
//         mainAxisAlignment: MainAxisAlignment.center,
//         children: [
//           Icon(
//             Icons.chat_bubble_outline,
//             size: 64.w,
//             color: context.theme.hintColor,
//           ),
//           SizedBox(height: 16.h),
//           Text(
//             StringConfig.noData,
//             style: TextStyle(
//               fontSize: 16.sp,
//               color: context.theme.hintColor,
//             ),
//           ),
//           SizedBox(height: 16.h),
//           ElevatedButton(
//             onPressed: controller.onRefresh,
//             child: const Text(StringConfig.retry),
//           ),
//         ],
//       ),
//     );
//   }

//   /// 构建浮动操作按钮
//   Widget _buildFloatingActionButton(BuildContext context) {
//     return FloatingActionButton(
//       onPressed: controller.onNewChatTap,
//       backgroundColor: context.theme.primaryColor,
//       foregroundColor: Colors.white,
//       child: const Icon(Icons.add_comment),
//     );
//   }
// }
